このページは私用WordPressの覚え書き兼、テストページです。
「SNSボタン」は、テスト検証用に仮設置しているだけなので、押しても反応しません。

024 index.php に複数ループをさせたせいか、サイト内検索がきかなくなってしまった件

(※WordPress覚書メモ この記事は、過去に書いた記事の再アップです)


何故か「サイト内検索」が効かない

会社のblogを「オリジナル」テーマに変更したところ、「サイト内検索」がきかなくなりました・・・onz。


使用している「オリジナル」テーマは、自サイト用に作ったテーマを流用しただけのものなので、基本的な部分はほぼ一緒。
必要最低限なテンプレートで済ませたかったので、search.php は、設置してませんでした。

(「検索結果」は、search.php がなかった場合、通常は index.php がテンプレートとして使われます。)

で、自サイトでは「検索」はちゃんと問題なく動作します。
会社用のblog では、なぜかきかない・・・onz。


「自サイト用」と「会社のblog」の違うところといえば、
「会社のblog」では「カスタム投稿は使っていない」「トップページは通常投稿(index.php)にしている」「index.php内で複数のループを使って、カテゴリーA の記事と、カテゴリーB の記事を分割して表示してる」という点くらいかな。


なので、自サイトで普通に機能する「サイト内検索」がきかないってことは、やっぱ 複数のループ(index.php) がマズイんじゃね? と思うわけですよ。

ってことで、改めてsearch.php を設置してみることにしました。


index.phpの代替テンプレートではなく、ちゃんと search.php を作ってみる

search.php
(↓ archive.php をコピーして名前を変更し、下記のハイライトした部分のみ、書き換えた)

<?php get_header(); ?>
<div id="content">
<div id="innerbox">

<?php $allsearch =& new WP_Query("s=$s&posts_per_page=-1");
$key = wp_specialchars($s, 1);
$count = $allsearch->post_count;
if($count!=0){
// 検索結果を表示:該当記事あり
echo '<h2>“<span class="ao">'.$key.'</span>” で検索した結果、下記の <span class="ao">'.$count.'</span> 件 の記事が見つかりました。</h2>';
}
else {
// 検索結果を表示:該当記事なし
 echo '<h2>“<span class="ao">'.$key.'</span>” で検索した結果、関連する記事は見つかりませんでした。</h2>';
}
?>
<br class="br30" />

<!-- 投稿情報 loop -->
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<div class="post">
<h2 class="posttitle"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<dl class="metadata">
<dd>投稿日:<?php the_time('Y年n月j日(D) AG:i'); ?></dd>
<dd>作成者:<?php the_author(); ?></dd>
</dl>
<?php the_post_thumbnail( array(100,160) ); ?><div class="ct"></div><?php the_excerpt(); ?>
<dl class="metadata">
<dt>カテゴリー:</dt>
<dd><?php the_category('、') ?></dd>
<?php if (get_the_tags()) { ?>
<dt>タグ:</dt>
<dd><?php the_tags('','、','') ?></dd>
<?php } ?>
</dl>
</div><!--div.post終了-->
<?php endwhile; else: ?>
<div class="post">
<p>申し訳ございません。<br />キーワードを変更して、検索してみてください。</p>
</div><!--div.post終了-->
<?php endif; ?>

<!-- 「PageNavi」 -->
<?php if(function_exists('wp_pagenavi'))://プラグイン「PageNavi」を有効にしている時 
?>
	<?php wp_pagenavi(); ?>
<?php else://プラグイン「PageNavi」を無効にした時 
?>
	<p class="navigation"><?php posts_nav_link(' | ','&laquo; 新しい記事へ','過去の記事へ &raquo;'); ?></p>
<?php endif; ?>
<br class="br30" />

</div><!--div#innerbox終了-->
</div><!--div#content終了-->

<!-- サイドバー -->
<?php get_sidebar(); ?>
<!-- フッター -->
<?php get_footer(); ?>

と記述したファイルを「テーマ」フォルダに加えてみましたら・・・


ちゃんと検索結果が表示されるようになりもうした!(・∀・)
よかった よかった


だがしかし・・・!! もういっこ、問題が発生・・・(次回につづく)